//题目描述
//学校正在选举学生会成员，有 n（n≤999）名候选人，每名候选人编号分别从 1 到 n，
//现在收集到了 m（m≤2000000）张选票，每张选票都写了一个候选人编号。
//现在想把这些堆积如山的选票按照投票数字从小到大排序。
//
//输入格式
//输入 n 和 m 以及 m 个选票上的数字。
//
//输出格式
//求出排序后的选票编号。

#include<iostream>
using namespace std;
int q[2000001];
void quick_sort(int q[], int l, int r)
{
	if(l >= r)
		return;
	int x = q[l], i = l - 1, j = r + 1;
	while(i < j){
		do i++; while(q[i] < x);
		do j--; while(q[j] > x);
		if(i < j) swap(q[i], q[j]);
	}
	quick_sort(q, l, j);
	quick_sort(q, j + 1, r);
}

int temp[2000001];
void merge_sort(int q[], int l, int r)
{
	if(l >= r)
		return;
	int mid = (l + r) >> 1;
	merge_sort(q, l, mid), merge_sort(q, mid + 1, r);
	int k = 0, i = l, j = mid + 1;
	while(i <= mid && j <= r)
		if(q[i] <= q[j]) temp[k++] = q[i++];
		else temp[k++] = q[j++];
	while(i <= mid) temp[k++] = q[i++];
	while(j <= r) temp[k++] = q[j++];
	for(i = l, j = 0; i <=r; i++, j++)
		q[i] = temp[j];
}
int main()
{
	int n, m;
	cin >> n >> m;
	for(int i = 0; i < m; i++)
		scanf("%d", &q[i]);
	merge_sort(q, 0, m - 1);
	for(int i = 0; i < m; i++)
		printf("%d ", q[i]);
	return 0;
}


//#include<iostream>
//using namespace std;
//int arr[2000001];
//void Quick_Sort(int q[], int l, int r)
//{
//	if(l >= r)
//		return;
//	int x = q[l], i = l - 1, j = r + 1;
//	while(i < j){
//		do i++; while(q[i] < x);
//		do j--; while(q[j] > x);
//		if(i < j) swap(q[i], q[j]);
//	}
//	Quick_Sort(q, l, j);
//	Quick_Sort(q, j + 1, r);
//}
//int temp[2000001];
//void Merge_Sort(int q[], int l, int r)
//{
//	if(l >= r)
//		return;
//	int mid = (l + r) >> 1;
//	Merge_Sort(q, l, mid), Merge_Sort(q, mid + 1, r);
//	
//	int k = 0, i = l, j = mid + 1;
//	while(i <= mid && j <= r)
//		if(q[i] <= q[j])
//			temp[k++] = q[i++];
//		else
//			temp[k++] = q[j++];
//	while(i <= mid) temp[k++] = q[i++];
//	while(j <= r) temp[k++] = q[j++];
//	for(i = l, j = 0; i <= r; i++, j++)
//		q[i] = temp[j];
//	
//}
//int main()
//{
//	int n, m;
//	cin >> n >> m;
//	for(int i = 0; i < m; i++){
//		scanf("%d", &arr[i]);
//	}
//	//Quick_Sort(arr, 0, m - 1);
//	Merge_Sort(arr, 0, m - 1);
//	for(int i = 0; i < m; i++){
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}
